package bancosys.tec.datadigester;

import bancosys.tec.exception.AbstractRuntimeException;
import bancosys.tec.exception.LocalizedMessageHolder;

/**
 * Exceção base do componente.
 */
public class DataDigesterException extends AbstractRuntimeException {

    private static final long serialVersionUID = -11466378839980219L;

    private static final String BUNDLE_NAME = "jmine-tec-data-digester-messages";

    /**
     * C'tor Evite usar, mensagem pouco informativa.
     * 
     * @param cause a CAUSA desta exception.
     */
    public DataDigesterException(Throwable cause) {
        this("datadigester.genericDataDigesterError");
    }

    /**
     * Construtor
     * 
     * @param messageHolder messageHolder
     * @param cause cause
     */
    public DataDigesterException(LocalizedMessageHolder messageHolder, Throwable cause) {
        super(messageHolder, cause);
    }

    /**
     * Construtor
     * 
     * @param messageHolder messageHolder
     */
    public DataDigesterException(LocalizedMessageHolder messageHolder) {
        super(messageHolder);
    }

    /**
     * C'tor
     * 
     * @param key A CHAVE do arquivo de i18n.
     * @param arguments ARGUMENTOS da mensagem, se houver.
     */
    @Deprecated
    public DataDigesterException(String key, Object... arguments) {
        super(key, arguments);
    }

    /**
     * C'tor
     * 
     * @param key A CHAVE do arquivo de i18n.
     * @param cause a CAUSA desta exception.
     * @param arguments ARGUMENTOS da mensagem, se houver.
     */
    @Deprecated
    public DataDigesterException(String key, Throwable cause, Object... arguments) {
        super(key, cause, arguments);
    }

    /**
     * Retorna o nome do arquivo de i18n que deve ser usado para localizar a mensagem. Este arquivo será procurado no classpath.
     * 
     * @return String
     */
    @Override
    public String getBundleBaseName() {
        return BUNDLE_NAME;
    }
}